package cn.b.sky.mes.cm.service;

import java.util.List;

import cn.b.sky.mes.cm.model.CalendarPattern;
import cn.b.sky.mes.cm.model.CalendarPatternItem;
import cn.b.sky.mes.cm.model.condition.CalendarPatternCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * 
 * <strong>Title : CalendarPatternService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.cm.service<br></strong>
 * <strong>Description : </strong>日历模式业务接口<br> 
 * <strong>Create on : 2016-1-12 上午11:01:39<br></strong>
 * <p>
 * @author zhaoxin01<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface CalendarPatternService {
  /**
   * 
   * <strong>Title : selectCalendarPatternByCondition<br></strong>
   * <strong>Description : </strong>分页查询日历模式<br> 
   * <strong>Create on : 2016-1-12 上午11:01:59<br></strong>
   * <p>
   * @param calendarPatternCondition
   * @return
   * List<CalendarPattern>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<CalendarPattern> selectCalendarPatternByCondition(CalendarPatternCondition calendarPatternCondition);

  /**
   * 
   * <strong>Title : selectCalendarPatternCount<br></strong>
   * <strong>Description : </strong>查询日历模式条数<br> 
   * <strong>Create on : 2016-1-12 上午11:02:27<br></strong>
   * <p>
   * @param calendarPatternCondition
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectCalendarPatternCount(CalendarPatternCondition calendarPatternCondition);

  /**
   * 
   * <strong>Title : selectCalendarPatternByCode<br></strong>
   * <strong>Description : </strong>根据编码查询日历模式<br> 
   * <strong>Create on : 2016-1-12 上午11:07:27<br></strong>
   * <p>
   * @param siteCode
   * @param calendarPatternCode
   * @return
   * CalendarPattern
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  CalendarPattern selectCalendarPatternByCode(String siteCode, String calendarPatternCode);

  /**
   * 
   * <strong>Title : insertCalendarPattern<br></strong>
   * <strong>Description : </strong>新增工作日模式<br> 
   * <strong>Create on : 2016-1-12 上午11:09:00<br></strong>
   * <p>
   * @param calendarPattern
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertCalendarPattern(CalendarPattern calendarPattern);

  /**
   * 
   * <strong>Title : updateCalendarPattern<br></strong>
   * <strong>Description : </strong>修改工作日模式<br> 
   * <strong>Create on : 2016-1-12 上午11:09:28<br></strong>
   * <p>
   * @param calendarPattern
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateCalendarPattern(CalendarPattern calendarPattern);

  /**
   * 
   * <strong>Title : deletetCalendarPattern<br></strong>
   * <strong>Description : </strong>删除日历模式<br> 
   * <strong>Create on : 2016-1-12 上午11:11:31<br></strong>
   * <p>
   * @param siteCode
   * @param calendarPatternCode
   * @return
   * BatchJobReport
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deletetCalendarPattern(String siteCode, String calendarPatternCode);

  /**
   * 
   * <strong>Title : selectCalendarPatternItems<br></strong>
   * <strong>Description : </strong>查询日历模式明细<br> 
   * <strong>Create on : 2016-1-12 下午06:32:06<br></strong>
   * <p>
   * @param siteCode
   * @param calendarPatternCode
   * @return
   * List<CalendarPatternItem>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<CalendarPatternItem> selectCalendarPatternItems(String siteCode, String calendarPatternCode);

  /**
   * 
   * <strong>Title : selectUnLockCalendarPatternList<br></strong>
   * <strong>Description : </strong>查询所有未锁定的日历模式<br> 
   * <strong>Create on : 2016-1-14 上午10:03:40<br></strong>
   * <p>
   * @param siteCode
   * @return
   * List<CalendarPattern>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<CalendarPattern> selectUnLockCalendarPatternList(String siteCode);
}
